a = 10
b = 20
# 法一：构造一个充当中间件角色的变量，用以存储待转换的变量值
c = 10
a = b
b = c
print(a, b)
# 法二：通过算数解决两个变量值的交换
b = a + b
a = b - a
b = b - a
print(a, b)
# 法三：利用Python特有的组包拆包功能
a, b = b, a  # 这里实际上有两个过程，就是组包和拆包，= 右边的可以是任意容器，而左边变量个数要与右边容器所含元素个数一致，
# 此代码的内部操作是：先将 = 右边的组包成元组(若是变量的话)，再拆包，将元组内元素依次赋值给 = 左边的变量
print(a, b)
print('=' * 40)
x, y, z = [1, 2, 3]
print(x, y, z)  # 这两行代码等价于：
bao1 = [1, 2, 3]
print(type(bao1), bao1)  # 组包操作
x, y, z = bao1
print(type(x), x, y, z)  # 拆包操作
print(x, y, z)
